package cn.zzf.service;

import org.springframework.transaction.annotation.Transactional;

/**
 * @author GaoFeng2017
 * @date 2018-07-01 15:25:10
 **/

public interface UserTestService {
    /**
     * required，spring默认事务方式，如果当前方法的调用者存在事务，则加入到调用者的事务中，否则为当前方法新建一个事务
     * @author GaoFeng
     * @date 2018/7/1 10:32
     * @param
     * @return void
     *
     */
    @Transactional(rollbackFor = RuntimeException.class)
    void requiredTest();

    /**
     * 不管调用者是否存在事务，都会创建新的事务，并且调用者的事务回滚不会影响当前方法的事务，而当前方法的事务回滚也不会影响调用者
     * @author GaoFeng
     * @date 2018/7/1 14:05
     * @param
     * @return void
     *
     */
    @Transactional(rollbackFor = RuntimeException.class)
    void requiredNewTest();

    //    @Transactional(rollbackFor = RuntimeException.class)
    void nestedTest();

    @Transactional(rollbackFor = RuntimeException.class)
    void orderTest();
}
